Various transmitting schemes exist for the transmission of data over wired and/or wireless networks, wherein a transmitter may be informed as to the success of transmission and/or reception of one or more transmitted data packets. In one such scheme, a receiver may indicate to the transmitter which of a plurality of data packets the receiver correctly received. Alternatively, the receiver may indicate which data packets were incorrectly received. According to one transmitting scheme, the receiver may automatically provide the transmitter with acknowledgement of successful, or unsuccessful, transmission and/or reception. Alternatively, according to other schemes, the transmitter may be required to request an acknowledgement, for example, by flagging one of the transmitted data packets with a polling bit. Regardless of the manner in which the receiver informs the transmitter of successful, or unsuccessful, transmission and/or reception of data packets, in many instances, the transmitter may store each of the transmitted data packets until such an acknowledgment has been received, so that the transmitter is able to retransmit any unsuccessfully transmitted or received data packets.
The transmitter implementing these schemes may be embodied in any electronic device (e.g., cellular telephone, personal digital assistant (PDA), personal computer (PC), laptop, pager, etc.) capable of transmitting data over a network, such as a wireless or wired personal area network (PAN), local area network (LAN), and/or wide area network (WAN). Alternatively, the transmitter may be embodied in a base station or similar network entity in communication with various electronic devices for the purpose of broadcasting data and/or communicating data between electronic devices.
One example of the type of transmitting scheme discussed above is the standardized radio access procedures for the 3rd Generation Partnership Project (3GPP) Long-Term Evolution (LTE) Radio Link Control (RLC)/Media Access Control (MAC) protocol layer operation on an base station, referred to as an eNB, or an E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) Node B. In LTE, the RLC/MAC layers are responsible for preparing higher layer data for transmission by the physical (PHY) layer. Reliability may be achieved by using both the Hybrid Automated Repeat re-Quest (HARQ) and the standard Automated Repeat re-Quest (ARQ) concepts. According to the 3GPP standard, LTE ARQ is implemented by transmitting user payload data in Protocol Data Units (PDUs) identified by a sequence number. Based on this number, the receiver is able to detect erroneous reception of data. In instances where the transmitter wants to be informed about successfully transmitted data, the transmitters may flag a transmitted PDU with a polling bit in order to request a confirmation about correctly received data from the receiver. In particular, a MAC layer of the LTE base station, or eNB, may, in response to receiving an instruction from the higher protocol layers, poll the receiver for information regarding successfully, or unsuccessfully received PDUs, by including a polling bit in a subsequently transmitted PDU.
As noted above, according to many of these transmitting schemes, the transmitter may store all relevant data, as well as any supplemental information associated with the data including, for example, segmentation information, for every data packet that has been created and transmitted but not acknowledged. In many instances it may be desirable to keep the number of acknowledgement requests and/or acknowledgements transmitted low, resulting in a rather large amount of data and supplemental information being stored and, therefore, rather remarkable memory requirements. This may be particularly true where the transmitter is embodied in a base station or similar entity that is responsible for transmitting data packets to numerous electronic devices and, therefore, for storing data packets associated with multiple data streams.
A need, therefore, exists for a way to enable a transmitter to retransmit data packets after being informed of all successfully, or unsuccessfully, transmitted and received data packets, while still maintaining optimal resource usage and allocation.